A hierarchy is a common method for organizing information. The table of contents for a book, an index system for a library and a function chart for a company's departments are examples of hierarchical arrangements of information. A hierarchy comprises nodes and their interrelationships. When a hierarchy interrelates structured nodes, those nodes are commonly called concepts (other terms used for nodes include scenes, frames, individuals and classes). The structure of a concept is described by the use of characterizing attributes called properties.
The meaning given to these concepts and their hierarchical interrelationships depends on the real world domain that is being represented by the data hierarchy or structure. Structures comprising concepts and their interrelationships are commonly known as "part-of" decomposition hierarchies and "is-a" abstraction hierarchies.
A "part-of" decomposition hierarchy is typically found in corporation departmental organization charts. Each sub-department is part-of a super-department. For example, the Electronic Catalog Division and Electronic Transaction Division are part-of the Electronic Commerce Division. The Electronic Commerce Division and Information Distribution Division are part-of the Internet Division which is in turn part-of the Software Division.
An "is-a" abstraction hierarchy is typically found in biological animal and organism classification charts. Each sub-abstraction is-a more specific (specialized) description of a super-abstraction. For example, the family of lions and the family of tigers are more specific descriptions of the family of large cats. The family of large cats and the family of humans are more specific descriptions of the family of mammals. The sub-concepts in these hierarchies usually share common properties with their super-concepts. We take advantage of this fact and minimize the amount of data we need to store by only defining common properties in a super-concept and allow sub-concepts of the super concept to "inherit" (access, use) these properties as part of their own definitions. Hierarchies with this characteristic are termed inheritance hierarchies. When a sub-concept can interrelate to only on super-concept, the hierarchy is termed a single inheritance concept hierarchy, and when a sub-concept can interrelate to more than one super-concept, the hierarchy is termed a multiple inheritance concept hierarchy. An example of a multiple inheritance concept hierarchy is found in the above mentioned U.S. application Ser. No. 08/472,414 (Applicants' Docket number CT9-95-002).
A way of visualizing these hierarchical data structures is by using a tree view as shown in FIG. 1. One method for visualizing any structured node in the tree view of FIG. 1, in combination with that nodes properties, would be to use a concept view as shown in FIG. 2. The example given in FIG. 2 is for the "Mobile" structured concept 100 of FIG. 1.
With these two views, a user can navigate the concept hierarchy shown in FIG. 1 by starting at the root concepts "Company" or "Function" and continue thru the sub-concepts until the leaf concepts are reached. At each concept, a concept view, such as the one of FIG. 2, can be consulted for a detailed examination of the structure of the concept. Switching back and forth between hierarchial and concept type views is a popular method of investigating concept hierarchies.
The problem with this method is that it uses two loosely linked views of the interrelationship between elements of the hierarchy, i.e., the hierarchical relationship between concepts shown in FIG. 1, and the membership relationship between a single concept and its properties shown in FIG. 2. Use of the approach requires a user to always retain a mental model of the hierarchial relationship between the concepts. To ready this difficulty, some applications have provided a search facility that will locate a cursor 101 at the concept in a tree hierarchy, such as the one of FIG. 1, where its string identifier matches the search entry. This technique leverages the relationship between the string identifiers in the application and the concepts in the hierarchy. However even with the use of the cursor, this approach to investigating concept hierarchies does not visualize the inheritance relationships between property declarations and constraints. At best, it constitutes a search method, not a navigation method, since it is an action that either passes or fails as opposed to a incremental method of browsing concept hierarchies.